package com.denlaku.longan.dao;

import java.util.List;

import com.denlaku.longan.anno.VarOp;
import com.denlaku.longan.qo.DashboardQuery;
import com.denlaku.longan.qo.Query;
import com.denlaku.longan.vo.Dashboard;
import org.springframework.stereotype.Repository;

/**
 * @author tianx
 */
@Repository
public interface DashboardDao {
    /**
     * 新增仪表板
     * @param dashboard 仪表板
     */
    @VarOp
    void add(Dashboard dashboard);

    /**
     * 更新仪表板
     * @param dashboard 仪表板
     */
    @VarOp
    void update(Dashboard dashboard);

    /**
     * 删除仪表板
     * @param query 查询参数
     */
    void delete(Query query);

    /**
     * 获取仪表板
     * @param query 查询参数
     * @return 仪表板
     */
    Dashboard get(Query query);

    /**
     * 查询仪表板
     * @param dashboard 查询参数
     * @return 仪表板
     */
    List<Dashboard> list(DashboardQuery dashboard);

    /**
     * 清理tag
     *
     * @param tenantId 租户ID
     * @param tagId 标签ID
     */
    public void clearTag(Long tenantId, Long tagId);
}
